#pragma once

#include <objbase.h>
#pragma comment( lib,"Rpcrt4.lib")
#include <string>
using namespace std;

//// FWD Decl
class CdiObject;

class CdiGUID
{
  friend class CdiObject;

private:
  // Member Variables
  ////////////////////////////////
  bool    m_made;
  string  m_strGUID;
  GUID    m_GUID;

private:
  // Helpers
  ////////////////////////////////
  void MakeUnique();

public:
  // Constructors
  ////////////////////////////////
  CdiGUID();
  CdiGUID( bool makeUnique );
  virtual ~CdiGUID(void);

public:
  // Methods
  ////////////////////////////////
  string GetGUID() const { return m_strGUID; }

};